{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e97f4fa7-bde6-4de4-8e94-b3b56c43754e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 用geopandas读取shapefile\n",
    "# 用geopandas可视化shapefile\n",
    "# 用shapely创建新的空间要素：点，线，面\n",
    "# 用geopandas可视化新建的空间要素\n",
    "# 利用geopandas输出shapefile"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "83fa13ea-6414-42f6-b09e-4917c9d2a1ba",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T03:40:51.892736Z",
     "iopub.status.busy": "2021-06-08T03:40:51.892438Z",
     "iopub.status.idle": "2021-06-08T03:40:53.394704Z",
     "shell.execute_reply": "2021-06-08T03:40:53.394050Z",
     "shell.execute_reply.started": "2021-06-08T03:40:51.892669Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import geopandas as gpd\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "8c5b2063-74c1-49eb-8a30-b74d5918182c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T03:43:53.841813Z",
     "iopub.status.busy": "2021-06-08T03:43:53.841566Z",
     "iopub.status.idle": "2021-06-08T03:43:53.856280Z",
     "shell.execute_reply": "2021-06-08T03:43:53.855018Z",
     "shell.execute_reply.started": "2021-06-08T03:43:53.841788Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 读取shapefile\n",
    "data = gpd.GeoDataFrame.from_file(r'../data/Shapefiles/sz.shp', encoding = 'utf-8')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "c6915144-2fb6-40e7-8220-570593fcad22",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T03:50:49.619471Z",
     "iopub.status.busy": "2021-06-08T03:50:49.619167Z",
     "iopub.status.idle": "2021-06-08T03:50:49.773458Z",
     "shell.execute_reply": "2021-06-08T03:50:49.772825Z",
     "shell.execute_reply.started": "2021-06-08T03:50:49.619412Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化\n",
    "data.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "395e6d27-6627-43f0-952f-42c6fb39806f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T03:49:10.740962Z",
     "iopub.status.busy": "2021-06-08T03:49:10.740711Z",
     "iopub.status.idle": "2021-06-08T03:49:10.780483Z",
     "shell.execute_reply": "2021-06-08T03:49:10.779704Z",
     "shell.execute_reply.started": "2021-06-08T03:49:10.740936Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>centroid_x</th>\n",
       "      <th>centroid_y</th>\n",
       "      <th>qh</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>114.143157</td>\n",
       "      <td>22.577605</td>\n",
       "      <td>罗湖</td>\n",
       "      <td>POLYGON ((114.10006 22.53431, 114.09969 22.535...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>114.041535</td>\n",
       "      <td>22.546180</td>\n",
       "      <td>福田</td>\n",
       "      <td>POLYGON ((113.98578 22.51348, 113.98558 22.523...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>114.270206</td>\n",
       "      <td>22.596432</td>\n",
       "      <td>盐田</td>\n",
       "      <td>POLYGON ((114.22772 22.54290, 114.22643 22.543...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>113.851387</td>\n",
       "      <td>22.679120</td>\n",
       "      <td>宝安</td>\n",
       "      <td>MULTIPOLYGON (((113.81831 22.54676, 113.81816 ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>113.926290</td>\n",
       "      <td>22.766157</td>\n",
       "      <td>光明</td>\n",
       "      <td>POLYGON ((113.98587 22.80304, 113.98605 22.802...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>114.356936</td>\n",
       "      <td>22.691020</td>\n",
       "      <td>坪山</td>\n",
       "      <td>POLYGON ((114.42581 22.66510, 114.42470 22.664...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>114.029687</td>\n",
       "      <td>22.686910</td>\n",
       "      <td>龙华</td>\n",
       "      <td>POLYGON ((114.10825 22.72368, 114.10785 22.723...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>113.930714</td>\n",
       "      <td>22.544103</td>\n",
       "      <td>南山</td>\n",
       "      <td>MULTIPOLYGON (((113.81491 22.39929, 113.80914 ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   centroid_x  centroid_y  qh  \\\n",
       "0  114.143157   22.577605  罗湖   \n",
       "1  114.041535   22.546180  福田   \n",
       "2  114.270206   22.596432  盐田   \n",
       "3  113.851387   22.679120  宝安   \n",
       "4  113.926290   22.766157  光明   \n",
       "5  114.356936   22.691020  坪山   \n",
       "6  114.029687   22.686910  龙华   \n",
       "7  113.930714   22.544103  南山   \n",
       "\n",
       "                                            geometry  \n",
       "0  POLYGON ((114.10006 22.53431, 114.09969 22.535...  \n",
       "1  POLYGON ((113.98578 22.51348, 113.98558 22.523...  \n",
       "2  POLYGON ((114.22772 22.54290, 114.22643 22.543...  \n",
       "3  MULTIPOLYGON (((113.81831 22.54676, 113.81816 ...  \n",
       "4  POLYGON ((113.98587 22.80304, 113.98605 22.802...  \n",
       "5  POLYGON ((114.42581 22.66510, 114.42470 22.664...  \n",
       "6  POLYGON ((114.10825 22.72368, 114.10785 22.723...  \n",
       "7  MULTIPOLYGON (((113.81491 22.39929, 113.80914 ...  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看数据结构\n",
    "data.head(8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8a1dfae1-3c92-41d5-bb88-ef1114950be9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T04:01:45.680105Z",
     "iopub.status.busy": "2021-06-08T04:01:45.679872Z",
     "iopub.status.idle": "2021-06-08T04:01:45.684117Z",
     "shell.execute_reply": "2021-06-08T04:01:45.682922Z",
     "shell.execute_reply.started": "2021-06-08T04:01:45.680080Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 创建空间要素\n",
    "lat1 = 22.447837\n",
    "lng1 = 113.75194\n",
    "lat2 = 22.864748\n",
    "lng2 = 114.624187\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "75d3cb0f-bacc-4fc9-ad9b-7575bc9d3057",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T07:59:51.881443Z",
     "iopub.status.busy": "2021-06-08T07:59:51.881212Z",
     "iopub.status.idle": "2021-06-08T07:59:51.885094Z",
     "shell.execute_reply": "2021-06-08T07:59:51.884277Z",
     "shell.execute_reply.started": "2021-06-08T07:59:51.881418Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from shapely.geometry import Point\n",
    "p1 = Point(lng1, lat1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "1d8114d2-2444-414a-98e9-fb38c41f4a1a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:00:11.345568Z",
     "iopub.status.busy": "2021-06-08T08:00:11.345284Z",
     "iopub.status.idle": "2021-06-08T08:00:11.349348Z",
     "shell.execute_reply": "2021-06-08T08:00:11.348389Z",
     "shell.execute_reply.started": "2021-06-08T08:00:11.345512Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "p2 = Point(lng2, lat2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "08441a4c-b382-4571-a117-d2eb16dae32a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:05:17.205143Z",
     "iopub.status.busy": "2021-06-08T08:05:17.204913Z",
     "iopub.status.idle": "2021-06-08T08:05:17.211444Z",
     "shell.execute_reply": "2021-06-08T08:05:17.210607Z",
     "shell.execute_reply.started": "2021-06-08T08:05:17.205118Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "gd = gpd.GeoDataFrame(columns=[\"pid\",\"geometry\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "f4c49ba0-3c00-4add-a7ce-7656023ebc28",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:07:17.075510Z",
     "iopub.status.busy": "2021-06-08T08:07:17.075161Z",
     "iopub.status.idle": "2021-06-08T08:07:17.081691Z",
     "shell.execute_reply": "2021-06-08T08:07:17.080752Z",
     "shell.execute_reply.started": "2021-06-08T08:07:17.075468Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mSignature:\u001b[0m \u001b[0mgd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mignore_index\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mverify_integrity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msort\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;34m'DataFrame'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
       "\u001b[0;31mDocstring:\u001b[0m\n",
       "Append rows of `other` to the end of caller, returning a new object.\n",
       "\n",
       "Columns in `other` that are not in the caller are added as new columns.\n",
       "\n",
       "Parameters\n",
       "----------\n",
       "other : DataFrame or Series/dict-like object, or list of these\n",
       "    The data to append.\n",
       "ignore_index : bool, default False\n",
       "    If True, the resulting axis will be labeled 0, 1, …, n - 1.\n",
       "verify_integrity : bool, default False\n",
       "    If True, raise ValueError on creating index with duplicates.\n",
       "sort : bool, default False\n",
       "    Sort columns if the columns of `self` and `other` are not aligned.\n",
       "\n",
       "    .. versionchanged:: 1.0.0\n",
       "\n",
       "        Changed to not sort by default.\n",
       "\n",
       "Returns\n",
       "-------\n",
       "DataFrame\n",
       "\n",
       "See Also\n",
       "--------\n",
       "concat : General function to concatenate DataFrame or Series objects.\n",
       "\n",
       "Notes\n",
       "-----\n",
       "If a list of dict/series is passed and the keys are all contained in\n",
       "the DataFrame's index, the order of the columns in the resulting\n",
       "DataFrame will be unchanged.\n",
       "\n",
       "Iteratively appending rows to a DataFrame can be more computationally\n",
       "intensive than a single concatenate. A better solution is to append\n",
       "those rows to a list and then concatenate the list with the original\n",
       "DataFrame all at once.\n",
       "\n",
       "Examples\n",
       "--------\n",
       ">>> df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))\n",
       ">>> df\n",
       "   A  B\n",
       "0  1  2\n",
       "1  3  4\n",
       ">>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))\n",
       ">>> df.append(df2)\n",
       "   A  B\n",
       "0  1  2\n",
       "1  3  4\n",
       "0  5  6\n",
       "1  7  8\n",
       "\n",
       "With `ignore_index` set to True:\n",
       "\n",
       ">>> df.append(df2, ignore_index=True)\n",
       "   A  B\n",
       "0  1  2\n",
       "1  3  4\n",
       "2  5  6\n",
       "3  7  8\n",
       "\n",
       "The following, while not recommended methods for generating DataFrames,\n",
       "show two ways to generate a DataFrame from multiple data sources.\n",
       "\n",
       "Less efficient:\n",
       "\n",
       ">>> df = pd.DataFrame(columns=['A'])\n",
       ">>> for i in range(5):\n",
       "...     df = df.append({'A': i}, ignore_index=True)\n",
       ">>> df\n",
       "   A\n",
       "0  0\n",
       "1  1\n",
       "2  2\n",
       "3  3\n",
       "4  4\n",
       "\n",
       "More efficient:\n",
       "\n",
       ">>> pd.concat([pd.DataFrame([i], columns=['A']) for i in range(5)],\n",
       "...           ignore_index=True)\n",
       "   A\n",
       "0  0\n",
       "1  1\n",
       "2  2\n",
       "3  3\n",
       "4  4\n",
       "\u001b[0;31mFile:\u001b[0m      /usr/local/lib/python3.9/site-packages/pandas/core/frame.py\n",
       "\u001b[0;31mType:\u001b[0m      method\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "?gd.append"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "79f5d3d3-dd51-4163-b094-950797b5c36f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:11:40.014720Z",
     "iopub.status.busy": "2021-06-08T08:11:40.014479Z",
     "iopub.status.idle": "2021-06-08T08:11:40.021347Z",
     "shell.execute_reply": "2021-06-08T08:11:40.020570Z",
     "shell.execute_reply.started": "2021-06-08T08:11:40.014696Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "gd = gd.append({'pid':len(gd),'geometry':p1},ignore_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "b588b4a9-d155-4793-81d5-500c6994c590",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:11:42.892964Z",
     "iopub.status.busy": "2021-06-08T08:11:42.892747Z",
     "iopub.status.idle": "2021-06-08T08:11:42.900396Z",
     "shell.execute_reply": "2021-06-08T08:11:42.899772Z",
     "shell.execute_reply.started": "2021-06-08T08:11:42.892940Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pid</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>POINT (113.75194 22.44784)</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  pid                    geometry\n",
       "0   0  POINT (113.75194 22.44784)"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "e43adda6-d043-4876-813a-a686eea081b7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:12:01.247069Z",
     "iopub.status.busy": "2021-06-08T08:12:01.246809Z",
     "iopub.status.idle": "2021-06-08T08:12:01.255328Z",
     "shell.execute_reply": "2021-06-08T08:12:01.254024Z",
     "shell.execute_reply.started": "2021-06-08T08:12:01.247043Z"
    }
   },
   "outputs": [],
   "source": [
    "gd = gd.append({'pid':len(gd),'geometry':p2},ignore_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "b586937e-919c-44c1-afef-97809a7bb3d7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:12:03.818514Z",
     "iopub.status.busy": "2021-06-08T08:12:03.818082Z",
     "iopub.status.idle": "2021-06-08T08:12:03.827980Z",
     "shell.execute_reply": "2021-06-08T08:12:03.827059Z",
     "shell.execute_reply.started": "2021-06-08T08:12:03.818485Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pid</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>POINT (113.75194 22.44784)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>POINT (114.62419 22.86475)</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  pid                    geometry\n",
       "0   0  POINT (113.75194 22.44784)\n",
       "1   1  POINT (114.62419 22.86475)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "99c3ff33-2dc0-43c6-9be6-80203a28fd97",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:12:18.008568Z",
     "iopub.status.busy": "2021-06-08T08:12:18.008308Z",
     "iopub.status.idle": "2021-06-08T08:12:18.152530Z",
     "shell.execute_reply": "2021-06-08T08:12:18.151924Z",
     "shell.execute_reply.started": "2021-06-08T08:12:18.008541Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "gd.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "6e73d60c-67ff-46bb-ad59-e287d3e0223b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:15:21.409530Z",
     "iopub.status.busy": "2021-06-08T08:15:21.409151Z",
     "iopub.status.idle": "2021-06-08T08:15:21.413555Z",
     "shell.execute_reply": "2021-06-08T08:15:21.412191Z",
     "shell.execute_reply.started": "2021-06-08T08:15:21.409498Z"
    }
   },
   "outputs": [],
   "source": [
    "a= [[lng1,lat1],[lng2,lat2]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "d4352160-cd0c-463f-8108-5e04b8b97c78",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:17:18.601044Z",
     "iopub.status.busy": "2021-06-08T08:17:18.600735Z",
     "iopub.status.idle": "2021-06-08T08:17:18.605656Z",
     "shell.execute_reply": "2021-06-08T08:17:18.604861Z",
     "shell.execute_reply.started": "2021-06-08T08:17:18.601016Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nd = pd.DataFrame(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "8afbcb1e-35d1-476d-878f-69bd9314b39a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:17:54.503062Z",
     "iopub.status.busy": "2021-06-08T08:17:54.502781Z",
     "iopub.status.idle": "2021-06-08T08:17:54.506405Z",
     "shell.execute_reply": "2021-06-08T08:17:54.505758Z",
     "shell.execute_reply.started": "2021-06-08T08:17:54.503037Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nd.columns=['lng','lat']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "0d1b6a98-ee11-4a43-b65f-6254974589f4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:19:41.308792Z",
     "iopub.status.busy": "2021-06-08T08:19:41.308511Z",
     "iopub.status.idle": "2021-06-08T08:19:41.314949Z",
     "shell.execute_reply": "2021-06-08T08:19:41.314011Z",
     "shell.execute_reply.started": "2021-06-08T08:19:41.308765Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nd['geometry']=nd.apply(lambda r:Point(r['lng'],r['lat']), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "10270ea6-9bf6-4ee8-bc6d-cbee5c5b9f2d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:20:00.315747Z",
     "iopub.status.busy": "2021-06-08T08:20:00.315506Z",
     "iopub.status.idle": "2021-06-08T08:20:00.319575Z",
     "shell.execute_reply": "2021-06-08T08:20:00.318851Z",
     "shell.execute_reply.started": "2021-06-08T08:20:00.315722Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nd=gpd.GeoDataFrame(nd)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "6f2d8dec-132d-40a2-b1c2-c90692e75bb6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:20:12.382940Z",
     "iopub.status.busy": "2021-06-08T08:20:12.382665Z",
     "iopub.status.idle": "2021-06-08T08:20:12.526793Z",
     "shell.execute_reply": "2021-06-08T08:20:12.526143Z",
     "shell.execute_reply.started": "2021-06-08T08:20:12.382871Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "nd.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "de75022d-6729-4380-b2ee-236ca45c0f97",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:21:11.034984Z",
     "iopub.status.busy": "2021-06-08T08:21:11.034715Z",
     "iopub.status.idle": "2021-06-08T08:21:11.039621Z",
     "shell.execute_reply": "2021-06-08T08:21:11.038765Z",
     "shell.execute_reply.started": "2021-06-08T08:21:11.034957Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nnd = nd[['lng','lat']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "7b95c483-d664-4894-8730-b9bb74c9248d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:21:13.859664Z",
     "iopub.status.busy": "2021-06-08T08:21:13.859415Z",
     "iopub.status.idle": "2021-06-08T08:21:13.868039Z",
     "shell.execute_reply": "2021-06-08T08:21:13.867303Z",
     "shell.execute_reply.started": "2021-06-08T08:21:13.859638Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>lng</th>\n",
       "      <th>lat</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>113.751940</td>\n",
       "      <td>22.447837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>114.624187</td>\n",
       "      <td>22.864748</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          lng        lat\n",
       "0  113.751940  22.447837\n",
       "1  114.624187  22.864748"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nnd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "544a59b5-a918-47cf-8de5-63a73fb89a63",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:21:21.103591Z",
     "iopub.status.busy": "2021-06-08T08:21:21.103349Z",
     "iopub.status.idle": "2021-06-08T08:21:21.108351Z",
     "shell.execute_reply": "2021-06-08T08:21:21.107427Z",
     "shell.execute_reply.started": "2021-06-08T08:21:21.103566Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.frame.DataFrame"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(nnd)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "c5b8439a-ab5b-46f1-9b00-a2ec430d3a93",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:22:42.533282Z",
     "iopub.status.busy": "2021-06-08T08:22:42.533021Z",
     "iopub.status.idle": "2021-06-08T08:22:42.538699Z",
     "shell.execute_reply": "2021-06-08T08:22:42.537709Z",
     "shell.execute_reply.started": "2021-06-08T08:22:42.533255Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nnd['lng2']=nnd['lng'].shift(-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "42fd8734-bc4d-415d-acab-4c38b5381745",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:23:09.529292Z",
     "iopub.status.busy": "2021-06-08T08:23:09.529071Z",
     "iopub.status.idle": "2021-06-08T08:23:09.534300Z",
     "shell.execute_reply": "2021-06-08T08:23:09.533431Z",
     "shell.execute_reply.started": "2021-06-08T08:23:09.529269Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nnd['lat2']=nnd['lat'].shift(-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "61cce636-366d-466e-9231-b828ca653921",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:24:09.413037Z",
     "iopub.status.busy": "2021-06-08T08:24:09.412808Z",
     "iopub.status.idle": "2021-06-08T08:24:09.417055Z",
     "shell.execute_reply": "2021-06-08T08:24:09.416396Z",
     "shell.execute_reply.started": "2021-06-08T08:24:09.413013Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nnd=nnd[-nnd['lng2'].isnull()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "b05bdd92-aafb-4277-882f-a54fb732333e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:26:54.359269Z",
     "iopub.status.busy": "2021-06-08T08:26:54.358949Z",
     "iopub.status.idle": "2021-06-08T08:26:54.365847Z",
     "shell.execute_reply": "2021-06-08T08:26:54.365116Z",
     "shell.execute_reply.started": "2021-06-08T08:26:54.359237Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-61-0cc529f7f9e2>:2: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  nnd['geometry']=nnd.apply(lambda r:LineString([[r['lng'],r['lat']],[r['lng2'],r['lat2']]]), axis=1)\n"
     ]
    }
   ],
   "source": [
    "from shapely.geometry import LineString\n",
    "nnd['geometry']=nnd.apply(lambda r:LineString([[r['lng'],r['lat']],[r['lng2'],r['lat2']]]), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "9d06081e-4b70-40e3-aa2c-612dd5b39f20",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:27:35.905807Z",
     "iopub.status.busy": "2021-06-08T08:27:35.905565Z",
     "iopub.status.idle": "2021-06-08T08:27:35.910545Z",
     "shell.execute_reply": "2021-06-08T08:27:35.909545Z",
     "shell.execute_reply.started": "2021-06-08T08:27:35.905782Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nnd=gpd.GeoDataFrame(nnd)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "955bf894-df14-4bfa-8373-ec66f7b43fee",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:27:40.664880Z",
     "iopub.status.busy": "2021-06-08T08:27:40.664642Z",
     "iopub.status.idle": "2021-06-08T08:27:40.796782Z",
     "shell.execute_reply": "2021-06-08T08:27:40.796114Z",
     "shell.execute_reply.started": "2021-06-08T08:27:40.664855Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "nnd.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "617f0713-f65c-43de-a9ff-5c626b687188",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:32:23.290749Z",
     "iopub.status.busy": "2021-06-08T08:32:23.290529Z",
     "iopub.status.idle": "2021-06-08T08:32:23.301067Z",
     "shell.execute_reply": "2021-06-08T08:32:23.300313Z",
     "shell.execute_reply.started": "2021-06-08T08:32:23.290725Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "nnd.to_file(r'../test.shp')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "316ebba6-986d-4a7b-b0bb-8f1d0955957c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:33:19.227948Z",
     "iopub.status.busy": "2021-06-08T08:33:19.227716Z",
     "iopub.status.idle": "2021-06-08T08:33:19.235454Z",
     "shell.execute_reply": "2021-06-08T08:33:19.234108Z",
     "shell.execute_reply.started": "2021-06-08T08:33:19.227922Z"
    }
   },
   "outputs": [],
   "source": [
    "test = gpd.GeoDataFrame.from_file(r'../test.shp')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "f1f0de85-893c-4851-bfdd-a345f1251671",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-06-08T08:33:34.347479Z",
     "iopub.status.busy": "2021-06-08T08:33:34.347249Z",
     "iopub.status.idle": "2021-06-08T08:33:34.498818Z",
     "shell.execute_reply": "2021-06-08T08:33:34.498019Z",
     "shell.execute_reply.started": "2021-06-08T08:33:34.347454Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "64dd42f6-b299-410c-b231-eda2338ceb17",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
